package com.mingqijia.gassafety.webserver.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mingqijia.gassafety.db.entity.Consumer;
import com.mingqijia.gassafety.db.entity.ConsumerServiceInfo;
import com.mingqijia.gassafety.shared.utils.commonUtils.PageUtil;
import com.mingqijia.gassafety.webserver.request.ConsumerServiceInfoListRequest;
import com.mingqijia.gassafety.webserver.request.ConsumerunBindDeviceRequest;
import com.mingqijia.gassafety.webserver.request.ConsumerunBindingRequest;
import com.mingqijia.gassafety.webserver.request.SaveConsumerServiceInfoRequest;
import com.mingqijia.gassafety.webserver.response.ConsumerServiceInfoResponse;
import com.mingqijia.gassafety.webserver.response.LatestConsumerServiceSummaryResponse;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 客户服务信息表 服务类
 * </p>
 *
 * @author mby
 * @since 2024-01-12
 */
public interface ConsumerServiceInfoService extends IService<ConsumerServiceInfo> {

    /**
     * 编辑客户服务信息
     * @param request
     */
    String editConsumerServiceInfo(SaveConsumerServiceInfoRequest request);

    /**
     * 新增客户服务信息
     * @param isUpdate
     * @param imei
     * @param industryType
     */
    void addConsumerServiceInfo(Integer isUpdate, String imei, Consumer consumer);

    /**
     * 新增客户服务信息删除以前的服务信息
     * @param isUpdate
     * @param imei
     * @param industryType
     */
    void addDeleteConsumerServiceInfo(Integer isUpdate, String imei, String industryType);

    /**
     * 新增客户服务信息
     * @param imei 置换的新设备
     * @param oldImei 老设备
     * @param industryType
     */
    void addConsumerServiceInfo(String imei, String oldImei, String industryType);

    /**
     * 删除客户服务信息
     * @param imei
     */
    void deleteConsumerServiceInfo(String imei);

    /**
     * 条件分页查询
     * @param request
     * @return
     */
    PageUtil<ConsumerServiceInfoResponse> queryConsumerServiceInfoList(ConsumerServiceInfoListRequest request);

    /**
     * 条件分页查询
     * @return
     */
    LatestConsumerServiceSummaryResponse queryConsumerServiceInfoTab();

    /**
     * 查询客户服务信息
     * @param consumerIds
     * @return
     */
    Map<Integer, LatestConsumerServiceSummaryResponse> queryConsumerServiceInfoMap(List<Integer> consumerIds);

    /**
     * 查询C端用户是否绑定设备
     * @param request
     * @return
     */
    String queryBindDevice(ConsumerunBindDeviceRequest request);

    /**
     * 校验客户服务的服务时间
     * @param spId
     * @param consumerId
     * @param imei
     * @return
     */
    Boolean checkConsumerImeiServiceDate(String spId,Integer consumerId,String imei);
}
